package org.slusk.thynwor.corestructures;

import org.slusk.thynwor.util.Coordinates;

/**
 * 
 * @author Shaun Lusk
 *
 */
public abstract class Bot extends Entity {

	public static enum ActionState {
		MOVING,
		INTERACTING,
		IDLE
	}

	private static final char displayCharacter = '*';

	
	static {

	}
	
	public Bot(Environment environment, Coordinates coordinates) {
		super(environment, coordinates);
		
		initializeStats();
	}

	
	public Bot(Bot bot) {
		super(bot.environment, new Coordinates(bot.coords));
	}
	
	protected abstract void initializeStats();
	
	public char getDisplayCharacter() { return displayCharacter; }
	
	@Override
	public String toString() { return getInfo(); }
		
	
	public boolean equals(Object obj) {
		if (obj == this) return true;
		if (this.getClass() != obj.getClass()) return false;
		Bot other = (Bot) obj;
		return this.getId() == other.getId();	 
	}
	
	
	public String getInfo() {
		StringBuilder s = new StringBuilder();
		s.append(super.getInfo());	
		return s.toString();
	}
		
}

